<?php 

	class ConfiguracionController extends AppController
	{
		public $uses = array('Sede','ConfiguracionEmail');	
		
		public function index()
		{
			$this->layout = 'default_ini';	  
		}
		
		
		public function consult_configuracion_email()
		{
			$this->layout = 'default_ini';
			$this->llenar_combobox_sede();
			
		}
		
		private function llenar_combobox_sede()
		{
			$sedes = $this->Sede->find('all');
			
			
			$arreglo = array();
			
			array_push($arreglo, array(0 => 'Todos'));
			
			foreach ($sedes as $sede) 
			{
					array_push($arreglo,array($sede['Sede']['id'] => $sede['Sede']['nombre_sede']));
			}
			
			$this->set('sedes',$arreglo);
	
		}
		public function llenar_info_config_email($id_configuracion)
		{
			$this->InfoEspecificoConfigEmail($id_configuracion);
		}
		public function llenar_config_email($id_sede)
		{
			$str_query = 'SELECT * 
							FROM configuracion_emails CE, sedes S 
							WHERE CE.sede_id = S.id';
				
			
			
			if ($id_sede != 0)
			{
				$str_query = $str_query.' AND S.id = '.$id_sede;
			}
	
			$str_query = $str_query . ' ORDER BY CE.id ASC ';
			
			$configuracions = $this->ConfiguracionEmail->query($str_query);
			
			$this->set('config_emails',$configuracions);
		}
		public function getGridConsultConfigEmail($id_sede)
		{
			
			$this->layout = false;
			if ($this->request->is('get')) 
			{
				$this->llenar_config_email($id_sede);
				$this->render('/Elements/GridConsultConfiguracionEmail');
			}
		}
		public function getDetalleConfigEmail($id_config)
		{
			$this->layout = false;
			if ($this->request->is('get')) 
			{
				$this->llenar_info_config_email($id_config);
				$this->render('/Elements/GetDetalleConfiguracionEmail');
			}
		}
		
		public function getEditConfigEmail($id_config,$error = null)
		{
			$this->layout = false;
			if ($this->request->is('get')) 
			{
				$this->llenar_info_config_email($id_config);
				
				if ($error)
				{
					$this->set('errors',$this->parserError($error));	
				}
				else
				{
					$this->set('errors',null);	
				}
				
				$this->render('/Elements/GetEditConfiguracionEmail');
			}
			elseif ($this->request->is('post') || $this->request->is('put') )
			{
					
					 
				$info_config = array( 
											'ConfiguracionEmail' => array(
																'id' => $this->request->data['id'],
																'email_administrador' => $this->request->data['email_administrador'],	
																'email_nomina' => $this->request->data['email_nomina'],
																'email_recursos_humanos' => $this->request->data['email_recursos_humanos']	
																
																
															) 
											
										);
			
				$this->postEditConfigEmail($info_config);
			}
			
		}
		
		private function setMessageFlash($id,$mensaje,$nombre_mensaje)
		{
			if (is_null($nombre_mensaje))
			{
				$nombre_mensaje = 'flash';
			}
			switch ($id) 
			{
				case 1: // mensaje bueno
					$this->Session->setFlash($mensaje,'default',array('class'=>'success'),$nombre_mensaje);
					break;
				case 2: // mensaje malo
					$this->Session->setFlash($mensaje,'default',array('class'=>'error-message'),$nombre_mensaje);
					break;
				case 3: // mensaje cuidado
					$this->Session->setFlash($mensaje,'default',array('class'=>'notice'),$nombre_mensaje);
					
					break;
				
				default:
					
					break;
			}
		}
		
		private function postEditConfigEmail($info_config)
		{
			$this->ConfiguracionEmail->create();
			
			$this->ConfiguracionEmail->set($info_config);
		
			$error = null;
			
			if ($this->ConfiguracionEmail->validates()) 
			{
			
			
				if ($this->ConfiguracionEmail->save($info_config))
				{
					$this->setMessageFlash(1, 'Se guardo los cambios', null);
				}
				else 
				{
					$this->setMessageFlash(2, 'No se guardo los cambios', null);
				}
			}
			else 
			{
			    $this->setMessageFlash(2, 'No se guardo los cambios',null);
				
				$error = $this->getErrors( $this->ConfiguracionEmail->validationErrors);
				
				
			
			}
		
	
			$this->redirect(array(
										'controller' => 'Configuracion',
										'action' => 'getEditConfigEmail',$this->ConfiguracionEmail->id,$error
								   )
							 );
				
			
		}

		public function InfoEspecificoConfigEmail($id_configuracion)
		{
			$detalle_configuracion = $this->ConfiguracionEmail->query(
														'SELECT * 
															FROM configuracion_emails CE, sedes S 
															WHERE CE.sede_id = S.id
															AND CE.id = '.$id_configuracion
													);
	
			
			$this->set('detalle_configuracion_email',$detalle_configuracion);
			
			
			
		}
		
	}
?>
		